Closed
Conversation
Introduce a standalone MCP server binary (novawindows-mcp) that exposes the NovaWindows driver capabilities over the Model Context Protocol.
…698856207 Add Claude Code GitHub Workflow
fix: replace NovaWindows automation name with DesktopDriver
Feat/custom env vars
fix: fix attaching to wrong application window
Bug fixes:
- Use top-level fs import instead of inline require() in appium-manager
- Fix spawn race: replace setImmediate with child.once('spawn') (Node ≥15.1)
- Fix CSS selector bug: use driver.findElement/findElements/findElementFromElement
protocol calls directly; 'id' aliased to 'accessibility id' as documented
- Fix appium:waitForAppLaunch capability (drop incorrect ms: infix)
- Fix get_clipboard to pass { contentType } object, not bare string
- Fix get_window_element to throw on unexpected response instead of String(result)
- Fix get_attribute returning the string "null" for absent attributes (now "")
- Remove dead ?? 1500 fallback (Zod default always fills the value)
Quality:
- Extract shared ELEMENT_KEY to lib/mcp/constants.ts
- Return image content type from take_screenshot (MCP image rendering)
- Move maximize/minimize/restore/close_window to window.ts (out of patterns.ts)
- Add readOnlyHint/destructiveHint/idempotentHint annotations to all tools
New tools: wait_for_element, get_toggle_state, focus_element, select_item
…nto feat/mcp-server
Add MCP server (novawindows-mcp) Exposes the NovaWindows driver as an MCP server, allowing AI agents to automate Windows desktop apps directly via the Model Context Protocol 39 tools across 8 domains: session lifecycle, app launch/close, element finding, interaction (click, type, scroll, drag), inspection, window management, clipboard, and advanced UIA patterns. Includes a full unit test suite and .mcp.json for zero-config local setup.
Fix/window handle access
…chInterval Non-negative number of retries and timeout between retries expected asarguments
Some apps spwan child processes os we need to track their PID to be able to attach to the correct window
fix(window): track child processes spawned from launched apps.
…etry feat(capability): Add capabilities windowSwitchRetries and windowSwichInterval
implemented commands: pushFile, pullFile, pullFolder, hideKeyboard, isKeyboardShown, activateApp, terminateApp and isAppInstalled
feat: Implemented missing commands
Co-authored-by: NirGallner <30394105+NirGallner@users.noreply.github.com> Agent-Logs-Url: https://github.com/verisoft-ai/appium-desktop-driver/sessions/ff901874-305a-4fc6-a352-9b4bd5bae36d
Added getMonitors command to allow users to choose where to display elements. Updated clicks to use virtual screen coordinates
…-appium-desktop docs: rename NovaWindows → Appium Desktop across documentation
feat(display): add support for multi monitor testing
chore(release): bump version and re-added the auto release workflow
## [1.4.0](v1.3.1...v1.4.0) (2026-03-23) ### Features * **capability:** Add capabilities windowSwitchRetries and windowSwitchInterval ([a831b3a](a831b3a)) * custom env variables capabilities ([6a98b5c](6a98b5c)) * **display:** add support for multi monitor testing ([1029aec](1029aec)) * Implemented missing commands ([4434b99](4434b99)) * **mcp:** add MCP server with 39 tools and unit test suite ([cf3d464](cf3d464)) ### Bug Fixes * Add allowed tools to claude code reviewer ([c4c18e9](c4c18e9)) * add tabbing ([c0cb0e8](c0cb0e8)) * fix attaching to wrong application window ([8960843](8960843)) * fix code review comments ([d7bebd9](d7bebd9)) * **lint:** resolve lint errors ([5b72f12](5b72f12)) * **mcp:** resolve bugs, add tool annotations, and new UIA tools ([fd73365](fd73365)) * Remove claude code review workflow ([88f921d](88f921d)) * Remove outerloops ([92eedfa](92eedfa)) * replace NovaWindows automation name with DesktopDriver ([dd585b9](dd585b9)) * **window:** narrow appProcessIds to the attached window's PID ([d281444](d281444)) * **window:** track child processes spawned from launched apps. ([f1e6bff](f1e6bff)) * **window:** window handles access capability added ([eefb804](eefb804)) ### Miscellaneous Chores * bump version to 1.1.0 ([393bdae](393bdae)) * bump version to 1.2.0 ([94a4f04](94a4f04)) * **claude:** Add constraints and context for claude code review ([e95c6b2](e95c6b2)) * **claude:** change constraints for claude code review ([3acee1c](3acee1c)) * **npm:** Ignore build artifacts and local mcp/claude config ([c9d3529](c9d3529)) * prepare package for verisoft npm distribution ([5b35ff7](5b35ff7)) * **release:** bump version and re-added the auto release workflow ([8555903](8555903)) * remove auto publish on push to main ([e940fd1](e940fd1)) ### Code Refactoring * **mcp:** remove auto-start, require Appium to be running externally ([8b76810](8b76810))
fix(mcp): change mcp naming to match new Desktop Driver convention
## [1.4.1](v1.4.0...v1.4.1) (2026-03-23) ### Bug Fixes * **mcp:** change mcp naming to match new Desktop Driver convention ([e77a7b0](e77a7b0))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
This is a first look at a appium-desktop-driver website
Types of changes
What types of changes does your code introduce to Appium?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.